package thread;

import java.util.logging.Level;
import java.util.logging.Logger;

public class SaqueSincronizado {

    private int saldo = 100;

    public int getSaldo() {
        return saldo;
    }

    public synchronized void sacar(int valor, String cliente) {
        if (saldo >= valor) {
            int saldoOriginal = saldo;
            System.out.println(cliente + " Quer sacar");
            try {
                System.out.println("esperando");
                Thread.sleep(1500);//tempo do saque
                saldo -= valor;
            } catch (InterruptedException ex) {}
                saldo -=valor;
                String msg = cliente + " Sacou " +valor
                        + "[Saldo Original = "+ saldoOriginal
                        + " , Saldo Final = "+saldo+"]";
                System.out.println(msg);
            } else {
            System.out.println(cliente + " Ficou "
                    + "sem sacar por falta de saldo");
        }

    }
}
